Add Filesystem TS -- Complete Add the completed std::experimental::filesystem implementation and tests. The implementation supports C++11 or newer. The TS is built as part of 'libc++experimental.a'. Users of the TS need to manually link this library. Building and testing the TS can be disabled using the CMake option '-DLIBCXX_ENABLE_FILESYSTEM=OFF'. Currently 'libc++experimental.a' is not installed by default. To turn on the installation of the library use '-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON'. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273034 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/CMakeLists.txt b/CMakeLists.txt index 382e277..6397131 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt 
@@ -53,6 +53,8 @@  option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON)  option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)  option(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY "Build libc++experimental.a" ON) +option(LIBCXX_ENABLE_FILESYSTEM + "Build filesystem as part of libc++experimental.a" ${LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY})  option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS})  option(LIBCXX_INCLUDE_DOCS "Build the libc++ documentation." ${LLVM_INCLUDE_DOCS})  set(LIBCXX_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING @@ -166,6 +168,11 @@  # Check option configurations  #===============================================================================   +if (LIBCXX_ENABLE_FILESYSTEM AND NOT LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY) + message(FATAL_ERROR + "LIBCXX_ENABLE_FILESYSTEM cannot be turned on when LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF") +endif() +  # Ensure LIBCXX_ENABLE_MONOTONIC_CLOCK is set to ON only when  # LIBCXX_ENABLE_THREADS is on.  if(LIBCXX_ENABLE_THREADS AND NOT LIBCXX_ENABLE_MONOTONIC_CLOCK) @@ -302,7 +309,7 @@  add_definitions(-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)  add_compile_flags_if_supported(  -Wall -W -Wwrite-strings - -Wno-unused-parameter -Wno-long-long + -Wno-unused-parameter -Wno-long-long -Wno-user-defined-literals  -Werror=return-type)  if (LIBCXX_ENABLE_WERROR)  add_compile_flags_if_supported(-Werror)